package io.renren.socket;

import java.io.*;
import java.net.*;

public class sendSocket {

    public static String send(String ip,int port,Object msg) {
        String returnMsg = "";
//        /*
//         * 向服务器端发送数据
//         */
//        try {
//            //1.定义服务器的地址、端口号、数据
//            InetAddress address = InetAddress.getByName(ip);
//            byte[] data = msg.toString().getBytes();
//            //2.创建数据报，包含发送的数据信息
//            DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
//            //3.创建DatagramSocket对象
//            DatagramSocket socket = new DatagramSocket();
//            //4.向服务器端发送数据报
//            socket.send(packet);
//
//            /*
//             * 接收服务器端响应的数据
//             */
//            //1.创建数据报，用于接收服务器端响应的数据
//            byte[] data2 = new byte[1024];
//            DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
//            //2.接收服务器响应的数据
//            socket.receive(packet2);
//            //3.读取数据
//            String reply = new String(data2, 0, packet2.getLength());
//            System.out.println("我是客户端，服务器说：" + reply);
//            returnMsg = reply;
//            //4.关闭资源
//            socket.close();
//        } catch (UnknownHostException u) {
//            returnMsg = u.getMessage();
//        } catch (Exception e) {
//            returnMsg = e.getMessage();
//        }
//        return returnMsg;
//
//
//    }



        try {
            //1.创建客户端Socket，指定服务器地址和端口
            Socket socket=new Socket(ip, port);

            //2.获取输出流，向服务器端发送信息
            OutputStream os=socket.getOutputStream();//字节输出流
            PrintWriter pw=new PrintWriter(os);//将输出流包装为打印流
            pw.write(msg.toString());
            pw.flush();
            socket.shutdownOutput();//关闭输出流
            //3.获取输入流，并读取服务器端的响应信息
            InputStream is=socket.getInputStream();
            BufferedReader br=new BufferedReader(new InputStreamReader(is));
            String info=null;
			while((info=br.readLine())!=null){
				System.out.println("我是客户端，服务器说："+info);
                returnMsg=info;
			}
            System.out.println("访问完毕");

            //4.关闭资源
            br.close();
            is.close();
            pw.close();
            os.close();
            socket.close();
        } catch (UnknownHostException e) {
             e.printStackTrace();
             returnMsg=e.getMessage();
        } catch (IOException e) {
            returnMsg=e.getMessage();
            e.printStackTrace();
        }
        return returnMsg;
    }
}
